home *** CD-ROM | disk | FTP | other *** search
/ HPAVC / HPAVC CD-ROM.iso / pc / SNNSV32.ZIP / SNNSv3.2 / kernel / sources / kr_mem.h < prev    next >
Encoding:
C/C++ Source or Header  |  1994-04-25  |  5.6 KB  |  175 lines

  1. /*****************************************************************************
  2.   FILE           : kr_mem.h
  3.   SHORTNAME      : 
  4.   SNNS VERSION   : 3.2
  5.  
  6.   PURPOSE        : SNNS-Kernel Memory Manager Function Prototypes
  7.   NOTES          :
  8.  
  9.   AUTHOR         : Niels Mache
  10.   DATE           : 21.2.90
  11.  
  12.   CHANGED BY     : Sven Doering
  13.   IDENTIFICATION : @(#)kr_mem.h    1.11 4/7/94
  14.   SCCS VERSION   : 1.11
  15.   LAST CHANGE    : 4/7/94
  16.  
  17.              Copyright (c) 1990-1994  SNNS Group, IPVR, Univ. Stuttgart, FRG
  18.  
  19. ******************************************************************************/
  20. #ifndef  _KR_MEM_DEFINED_
  21. #define _KR_MEM_DEFINED_
  22.  
  23.  
  24.  
  25. /*  get one link structure */
  26. extern struct Link *krm_getLink( void );
  27.  
  28. /*  release one link structure */
  29. extern void krm_releaseLink( struct Link * link_ptr);
  30.  
  31. /*  release the link and all following links */
  32. extern void krm_releaseAllLinks( struct Link *first_link_ptr );
  33.  
  34. /*  get one unit-site structure */
  35. extern struct Site *krm_getSite( void );
  36.  
  37. /*  release one unit-site structure */
  38. extern void krm_releaseSite( struct Site *site_ptr );
  39.  
  40. /*  release the unit-site and all following sites (at this unit) */
  41. extern void krm_releaseAllSites( struct Site *first_site_ptr );
  42.  
  43. /*  garbage collection of unit array   */
  44. extern void  krm_unitArrayGC( void );
  45.  
  46. /*  allocate the unit array */
  47. extern krui_err krm_allocUnits( int  N );
  48.  
  49. /*  get one unit structure */
  50. extern int krm_getUnit( void );
  51.  
  52. /*  release unit */
  53. extern void krm_releaseUnit( int  UnitNo );
  54.  
  55. /*  get information about memory usage */
  56. extern void krm_getMemoryManagerInfo( int  *array_size, int info_array[] );
  57.  
  58. /*  allocate the array for topological sorting of the units in the network */
  59. extern krui_err  krm_allocUnitTopoArray( int  N );
  60.  
  61. /*  release the topolocic array */
  62. extern void  krm_releaseUnitTopoArray( void );
  63.  
  64. /*  release one name-table entry */
  65. extern void krm_NTableReleaseEntry( struct NameTable  *NTable_ptr );
  66.  
  67. /*  Searches for a given symbol and symbol-type in the name table. 
  68.     Returns symbol ptr if symbol was found, NULL otherwise. */
  69. extern struct NameTable *krm_NTableSymbolSearch( char  *symbol, int  sym_type );
  70.  
  71. /*  Creates a new symbol in the name-table.   Returns name-table ptr or NULL if
  72.     memory alloc has failed.  */
  73. extern struct NameTable *krm_NTableCreateEntry(char  *symbol_name, 
  74.                            int  symbol_type );
  75.  
  76. /*  Inserts a symbol in the name-table. This function duplicates symbol ptrs
  77.     if the symbol was found in the name-table.  Returns symbol ptr or NULL if
  78.     memory alloc has failed. */
  79. extern char *krm_NTableInsertSymbol( char  *symbol_name, int  symbol_type );
  80.  
  81. /*  release name-table entry if there is no other reference to this symbol */
  82. extern void krm_NTableReleaseSymbol( char  *symbol_name, int  symbol_type );
  83.  
  84. /*  get the first name-table entry */
  85. extern struct NameTable *krm_getNTableFirstEntry( void );
  86.  
  87. /*  get the next name-table entry */
  88. extern struct NameTable *krm_getNTableNextEntry( void );
  89.  
  90. /*  create new site-table entry */
  91. extern struct SiteTable *krm_STableCreateEntry(char  *site_symbol, 
  92.                            SiteFuncPtr  site_func );
  93.  
  94. /*  change the properties of the given site-table entry */
  95. extern struct SiteTable *krm_STableChangeEntry(struct  SiteTable  *stbl_ptr, 
  96.                            char  *new_site_name,
  97.                            SiteFuncPtr  new_site_func );
  98.  
  99. /*  release a previosly defined site-table entry */
  100. extern void krm_STableRemoveEntry( struct SiteTable  *STable_ptr );
  101.  
  102. /*  searches for a symbol in the site-table */
  103. extern struct SiteTable *krm_STableSymbolSearch( char  *site_symbol );
  104.  
  105. /*  returns a pointer to the first used site-table entry */
  106. extern struct SiteTable *krm_getSTableFirstEntry( void );
  107.  
  108. /*  returns a pointer to the next used site-table entry */
  109. extern struct SiteTable *krm_getSTableNextEntry( void );
  110.  
  111. /*  allocate a new Ftype entry */
  112. extern struct FtypeUnitStruct *krm_getFtypeEntry( void );
  113.  
  114. /*  free a previosly defined Ftype entry */
  115. extern void krm_releaseFtypeEntry( struct FtypeUnitStruct  *Ftype_entry );
  116.  
  117. /*  create and define a Ftype entry */
  118. extern struct FtypeUnitStruct 
  119.                        *krm_FtypeCreateEntry(char *Ftype_symbol, 
  120.                          OutFuncPtr out_func, 
  121.                          ActFuncPtr act_func, 
  122.                          ActDerivFuncPtr act_deriv_func );
  123.  
  124. /*  add a site to a previosly defined Ftype entry */
  125. extern struct Site *krm_FtypeAddSite(struct FtypeUnitStruct  *Ftype_entry, 
  126.                      struct SiteTable  *STable_entry );
  127.  
  128. /*  returns a pointer to first Ftype entry */
  129. extern struct FtypeUnitStruct *krm_getFtypeFirstEntry( void );
  130.  
  131. /*  returns a pointer to next Ftype entry */
  132. extern struct FtypeUnitStruct *krm_getFtypeNextEntry( void );
  133.  
  134. /*  searches for a Ftype entry with the given name */
  135. extern struct FtypeUnitStruct *krm_FtypeSymbolSearch( char  *Ftype_symbol );
  136.  
  137. /*  releases all Ftype entries */
  138. extern void krm_releaseFtypeList( void );
  139.  
  140. /*  free all link arrays */
  141. extern void  krm_releaseLinkArrays( void );
  142.  
  143.  
  144. /*  Functions for the MasPar kernel  */
  145. #ifdef MASPAR_KERNEL
  146. #ifdef MASPAR_KERNEL_EMULATION
  147.  
  148. /*  release weight arrays from memory */
  149. extern void  krm_releaseWeightArrays( void );
  150.  
  151. /*  creates arrays containing connection weights for feedforward networks */
  152. extern krui_err  krm_createWeightArrays( void );
  153.  
  154. #endif
  155. #endif
  156.  
  157. /*  frees all memory used for the internal representation of the network */
  158. extern void krm_releaseMem( void );
  159.  
  160.  
  161.  
  162.  
  163. /*#################################################
  164.  
  165. GROUP: Global Var's (as declared by the Memory Manager)
  166.  
  167. #################################################*/
  168.  
  169. extern int  NoOfAllocPatternPairs;  /*  no. of allocated pattern pairs  */
  170.  
  171. #endif 
  172.  
  173.  
  174. /* 174 lines generated by deleteprivatedefinitions.awk */
  175.